package arr

import (
	"strconv"
)

/*
时间复杂度：O(logN)
空间复杂度:O(logN)

对数字一个一个进行操作，而不是每三个操作一次
*/
func thousandSeparator(n int) string {
	if n == 0 {
		return "0"
	}
	count := 0
	result := make([]byte, 0)
	for n > 0 {
		count++
		cur := n % 10
		n /= 10
		result = append([]byte(strconv.Itoa(cur)), result...)
		// 只有当n>0时才需要添加“.”，否则左边就多添加了一个多余的点，例如： .123.456
		if count%3 == 0 && n > 0 {
			count = 0
			result = append([]byte("."), result...)
		}
	}
	return string(result)
}
